Conclusion

These packages described in this article are a first step toward the building of a comprehensive signal processing environment in <#1186#>Mathematica<#1186#>. We have implemented the common signal processing transforms and other rudimentary analysis capabilities. But <#1187#>Mathematica<#1187#> has the potential to do much more. We have developed packages that aid in filter design and perform discrete and continuous convolution in one dimension. We are developing an exhaustive collection of windowing functions, which are also important in time series analysis. Other packages under development will take further the idea of representing signals and systems as abstract objects, empowering <#1188#>Mathematica<#1188#> to reason about properties of signals and transforms, to run simulations of systems, and to find optimal implementations of signal processing expressions. The ultimate goal is to have <#1189#>Mathematica<#1189#> facilitate fast prototyping of algorithms by first optimizing an algorithm (subject to design specification and the limitations of the target architecture) and then generate the equivalent code for the architecture.

This paper also describes how students could use <#1190#>Mathematica<#1190#> to supplement classroom lectures and laboratory experience. Using Notebooks, students can load the signal processing packages and tackle homework problems in linear systems while documenting the solution as they go. Notebooks can also serve as tutorials. We have written four Notebooks covering the topics of piecewise convolution, analog filter design, Laplace transform, and the z-transform. The Notebook are currently in use in several engineering and mathematics departments, including Rose-Hulman Institute of Technology, Georgia Institute of Technology, Uninversity of Pennsylvannia, and Pennsylvannia State University. Although some schools are integrating <#704#>Mathematica<#704#> into their curricula, we hope that more schools encourage students to use it.